home *** CD-ROM | disk | FTP | other *** search
- Listing 3 -- mbstowcs.c
-
- /* mbstowcs function */
- #include <stdlib.h>
-
- size_t (mbstowcs)(wchar_t *wcs, const char *s, size_t n)
- { /* translate multibyte string to wide char string */
- int i;
- wchar_t *pwc;
- _Mbsave state = {0};
-
- for (pwc = wcs; 0 < n; ++pwc, --n)
- { /* make another wide character */
- i = _Mbtowc(pwc, s, n, &state);
- if (i == -1)
- return (-1);
- else if (i == 0 || *pwc == 0)
- return (pwc - wcs);
- s += i;
- }
- return (pwc - wcs);
- }
-
-